#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@interface UIColor (SH)

/**
 16进制颜色  例: [UIColor colorWithHex:0xFF0000]

 @param col 如 0xFFFFFF 对应白色
 @return UIColor instance
 */
+ (instancetype)colorWithHex:(NSUInteger)col;

/**
 16进制颜色  例: [UIColor colorWithHexString:@"FF0000"]; // 红色  字符中允许出现 x #

 @param str 如 0xFFFFFF 对应白色
 @return UIColor instance 或　空 使用时要注意 (如果传的数据不是以下字符则返回nil  [0-9a-f]x#)
 */
+ (instancetype)colorWithHexString:(nullable NSString *)str;

/**
 16进制颜色  例: [UIColor colorWithHex:0xFF0000 alpah: 1.0]

 @param hexColor 0xFFFFFF whiteColor
 @param alpha 0.0~1.0
 @return UIColor instance
 */
+ (instancetype)colorWithHex:(NSUInteger)hexColor alpha:(CGFloat)alpha;

/**
 十进制颜色　例: [UIColor colorWithR:241 g:60 b:91 alpah: 1.0]

 @param r red
 @param g green
 @param b blue
 @param a alpha
 @return UIColor instance
 */
+ (instancetype)colorWithR:(NSUInteger)r g:(NSUInteger)g b:(NSUInteger)b a:(CGFloat)a;

/**
 * 转成图片, 用于按钮背景等
 * size 1x1
 @return 图片
 */
- (UIImage *)toImage;


/**
 转成图片

 @param size 图片大小
 @return 图片
 */
- (nullable UIImage *)toImageWithSize:(CGSize)size;


typedef NS_ENUM(NSInteger, GradientColorDirection) {
    GradientColorDirectionLevel,//水平渐变
    GradientColorDirectionVertical,//竖直渐变
    GradientColorDirectionDownDiagonalLine,//向上对角线渐变
    GradientColorDirectionUpwardDiagonalLine,//向下对角线渐变
};

// 渐变色
+ (instancetype)gradientColorWithSize:(CGSize)size
                            direction:(GradientColorDirection)direction
                           startColor:(UIColor *)startcolor
                             endColor:(UIColor *)endColor;

@end

NS_ASSUME_NONNULL_END
